package com.vm.osm.business.service;

import com.vm.osm.business.dto.req.orderInst.*;
import com.vm.osm.business.dto.rsp.customer.Customer;
import com.vm.osm.business.dto.rsp.orderInst.RspOrderPage;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * Created by chenzui on 2018/3/23.
 */
public interface IMyOrderInfoService {
    /**
     * 查询我的工单
     * @param reqGetMyOrder
     * @return
     */
    public RspOrderPage queryMyOrders(ReqGetMyOrder reqGetMyOrder);

    /**
     * 接单
     * @param orderId
     * @param staffId
     * @param staffName
     * @param headIcon
     */
    public void agree(String orderId,String staffId,String staffName,String headIcon);

    /**
     * 拒绝接单
     * @param orderId
     * @param type
     * @param reason
     * @param staffId
     * @param staffName
     * @param headIcon
     */
    public void disagree(String orderId,String type,String reason,String staffId,String staffName,String headIcon);

    /**
     * 接单后填写工单信息
     * @param reqDealOrderFailure
     */
    public void updateOrderFailure(ReqDealOrderFailure reqDealOrderFailure);

    /**
     * 转单
     * @param reqTurnOrder
     */
    public void turn(ReqTurnOrder reqTurnOrder);

    public List<Customer> queryProviders(String enterpriseId);

    /**
     * 故障上报
     * @param reqUpOrder
     */
    public void up(ReqUpOrder reqUpOrder);


    /**
     * 故障误报
     * @param reqBackOrder
     */
    public void back(ReqBackOrder reqBackOrder);

    /**
     * 上报中的故障工单再次进行分配
     * @param reqAssignOrder
     */
    public void dealUpOrder(ReqAssignOrder reqAssignOrder, HttpServletRequest request);

    /**
     * 抢单
     * @param orderId
     */
    public void catchOrder(String orderId,String staffId,String name,String headIcon);

    /**
     *
     * @param orderId
     * @param remark
     * @param staffId
     * @param name
     * @param headIcon
     */
    public void dealAgain(String orderId,String remark,String staffId,String name,String headIcon);

}
